import java.util.Scanner;

public class day230406 {
    // 扑克牌大小
    public static void main2(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        int index = str.indexOf('-');

        // 先通过 "-" 将两个手牌分开, 成为两个字符串
        String s1 = str.substring(0, index);
        String s2 = str.substring(index + 1);

        // 再将手牌以 空格 分开, 让每个牌都成为一个字符串
        String[] a1 = s1.split(" ");
        String[] a2 = s2.split(" ");;

        int type1 = type(a1);
        int type2 = type(a2);

        // 手牌, 从小到大
        String[] card = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2", "joker", "JOKER"};

        // 输入手牌不会相等
        if (type1 != type2) {
            // 类型不同, 炸 和 王可以与其他比较
            // 如果有王炸, 王炸大
            // 然后如果有炸弹, 炸弹大
            // 都没有, 不能比较ERROR
            if (type1 == 0 || type2 == 0) {
                System.out.println(type1 == 0 ? s1 : s2);
            } else if (type1 == 4 || type2 == 4) {
                System.out.println(type1 == 4 ? s1 : s2);
            } else {
                // 不存在比较关系
                System.out.println("ERROR");
            }
        } else {
            // 类型相同, 个子, 对子, 三个, 炸, 顺子
            // 比较第一个手牌的大小
            // 遍历 card , 先遍历到的 比较小
            for (String s : card) {
                if (s.equals(a1[0])) {
                    System.out.println(s2);
                    break;
                }
                if (s.equals(a2[0])) {
                    System.out.println(s1);
                    break;
                }
            }
        }
    }

    // 判断手牌类型
    private static int type(String[] str) {
        int len = str.length;
        // 个子, 三个, 炸弹, 顺子
        if (len == 1 || len == 3 || len == 4 || len == 5) {
            return len;
        }
        // 王炸和对子
        if (str[0].equals("joker")) {
            return 0;
        }
        return 2;
    }


    // 完全数计算
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int count = 0;
        for (int i = 2; i <= n; i++) {
            int sum = 0;
            // 计算约数, 并且加起来
            for (int j = 2; j*j <= i; j++) {
                if (i % j == 0) {
                    sum += j;
                    if (i / j != j) {
                        // j 是约数, 那么 i / j 也是约数
                        sum += i / j;
                    }
                }
            }
            if (sum + 1 == i) {
                // 上面没算1
                count++;
            }
        }
        System.out.println(count);
    }

    public static void main1(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int count = 0;
        for (int i = 3; i <= n; i++) {
            if (isPerfectNumber(i)) {
                count++;
            }
        }
        System.out.println(count);
    }

    private static boolean isPerfectNumber(int n) {
        int sum = 0;
        for (int i = 1; i <= n / 2; i++) {
            if (n % i == 0) {
                sum += i;
            }
        }
        return sum == n;
    }
}
